██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Boot loader
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Un mwcqboot loader,cite-ref-1[1] in mwdginformatica, è il mwdwprogramma che, nella fase di avvio (mweaboot) del mweqcomputer, carica il mwegkernel del mwewsistema operativo dalla mwfamemoria secondaria (ad esempio un mwfqhard disk) alla mwfgmemoria primaria (generalmente la mwfwRAM), permettendone l'esecuzione da parte del mwgaprocessore e il conseguente avvio del sistema.
Il termine deriva dal fatto che il mwggprocesso di avvio di un mwgwcomputer viene chiamato mwhabootstrap (dal detto mwhqinglese mwhgto lift oneself by one's own bootstrap, "tirarsi su per le fibbie degli stivali"). Nel caso di più sistemi operativi installati sulla stessa macchina, il caricamento da parte del boot loader è preceduto dalla selezione del sistema operativo desiderato da parte dell'utente tramite il mwhwboot manager.
Contents
• Compiti
• Stage 1
• Stage 2
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Descrizione
Compiti
La funzione fondamentale di un boot loader è dunque caricare ed eseguire una kernel di sistema operativo, unitamente ai processi e servizi secondari. Nella maggior parte dei casi, questo richiede di accedere alla mwkqmemoria di massa, per leggere il kernel di sistema operativo, e potenzialmente altri mwkgfile. Nei casi più semplici, il boot loader contiene l'indirizzo dei blocchi di disco in cui sono memorizzati i file da caricare, e deve quindi essere aggiornato se questi file vengono modificati. L'accesso al disco spesso avviene attraverso le funzioni fornite dal mwkwfirmware (il mwlaBIOS nei sistemi mwlqPC IBM compatibili). Alcuni boot loader posseggono la capacità di interpretare uno o più mwlgfile system per trovare i file da caricare. In questo caso, possono anche caricare un mwlwfile di configurazione dal disco, o permettere ad un utente avanzato di esplorare il disco alla ricerca di file da caricare. Alcuni boot loader sono in grado di utilizzare le funzionalità fornite da alcune mwmaschede di rete (tipicamente mwmqethernet) per scaricare un kernel dalla rete, tipicamente via mwmgTFTP.
Ogni sistema operativo installato anzi ogni volume avviabile (esistono infatti anche ambienti di ripristino o simili) ha uno specifico boot loader o, meglio, il file di configurazione di avvio (per mwnaWindows 10 si chiama BCD, ad esempio) contiene le istruzioni di avvio specifiche che devono essere lette dal boot loader per ogni volume avviabile.
Funzionalità aggiuntive presenti in alcuni boot loader:
• Molti kernel supportano la possibilità di ricevere parametri di avvio per configurare il loro comportamento; il boot loader si occupa di passarli al kernel, e in alcuni casi permette all'utente di editare questi parametri.
• Alcuni kernel prevedono che altri file siano resi disponibili al kernel durante il boot (per esempio nei sistemi mwoqUnix-like è comune l'uso di mwoginitrd, un piccolo mwowfile system memorizzato in un file). Il caricamento di questi file viene gestito dal bootloader.
• Un boot loader può mostrare all'utente un menù di possibili kernel da caricare, con relativi parametri, permettendo all'utente di scegliere quale sistema operativo avviare.
• Un boot loader può richiedere una password per consentire l'avvio del sistema.
Funzionamento
Il boot loader viene in molti casi installato in una posizione specifica di uno specifico dispositivo di mwrqmemoria di massa, tipicamente nel primo blocco del primo mwrgdisco ("primo" rispetto all'ordine con cui i dispositivi sono collegati al calcolatore), da dove viene caricato dal mwrwfirmware del calcolatore.
Ad esempio, nell'architettura mwsqIBM compatibile il boot loader può essere memorizzato nel mwsgmaster boot record (MBR) del mwswdisco di avvio, oppure nel primo settore della mwtapartizione che ospita il mwtqsistema operativo (nel qual caso deve essere richiamato da un mwtgboot manager installato nel MBR); oppure può essere anche nel primo settore di un mwtwvolume avviabile, come ad esempio un ambiente di ripristino (come mwuaWindows Recovery Environment).
Esistono alcune limitazioni imposte dalla tecnica e dai produttori di hardware e firmware per cui, al fine di aggirarle molti boot loader moderni operano ricorrendo al cosiddetto mwugboot in due stadi, lo stage 1 e lo stage 2, divisione logica che rimarca diversi momenti della fase di avvio. Quanto alle limitazioni esse sono, per esempio, la possibilità di caricare dal dispositivo di boot nella mwuwmemoria centrale solo una piccola quantità di byte e trovarla posizionata in un punto piuttosto sconveniente della memoria - è il caso emblematico dei sistemi basati sulla famiglia mwvax86 che carica i primi 512 byte che incontra sul dispositivo di boot a partire dall'indirizzo 0x0000:0x7C00 in avanti (ultimo byte in 0x0000:0x7DFF).
Esempio di boot a stadi
Ecco una sommaria descrizione di un possibile boot a stadi:
Stage 1
Lo stage 1, poc'anzi riferito anche come mwzqboot manager, si occupa di mansioni molto elementari e che possono essere codificate in relativamente poco spazio, come ricercare il primo mwzgvolume di sistema sul disco di boot, cercare, caricare il secondo stadio, più complesso ed esteso, in memoria e passargli il controllo. In questo stadio possono essere effettuate anche minime inizializzazioni di sistema utili al secondo stadio ma non è sempre il caso.
Stage 2
Lo stage 2 è il vero e proprio gestore di avvio del programma esecutivo o del mwaqsistema operativo. Esso è molto più sofisticato, complesso ed esteso del primo stadio e si occupa principalmente, ma non solo, di scegliere quale mwagkernel caricare in memoria per poi cedergli il controllo. Esso comincia ad assomigliare più nel dettaglio ad un vero e proprio sistema operativo per quanto minimale: è tuttavia più corretto chiamarlo programma esecutivo poiché manca di molte delle caratteristiche dei sistemi operativi moderni quali la mwawmultiprogrammazione, la gestione delle risorse e così via.
Un singolo boot loader è in grado di caricare molti tipi mwbqkernel (e quindi molti sistemi operativi) differenti su partizioni diverse. Naturalmente può essere caricato un solo kernel per volta.
Boot loader più conosciuti
• mweqWinload - usato dai sistemi operativi mwegWindows a partire da mwewWindows Vista/mwfaWindows Server 2008 R2
• PXELINUX - variante di SYSLINUX usata per l'avvio da rete (vedi mwjgPreboot Execution Environment)
• XOSL (acronimo di emwkwXtended mwlaOperating mwlqSystem mwlgLoader)
• mwmaDas U-Boot - usato per caricare mwmqLinux su varie piattaforme hardware
I sistemi mwmwIBM, mwnaBlade server o mwnqmainframe, utilizzano bootloader proprietaricite-ref-4[4] quando non direttamente i comandi contenuti nell'mwogUEFI oppure (se sono sistemi nella configurazione Linux based) i bootloader visti sopra (o specifici bootloader Linux ricompilati specificatamente per i mwowsistemi operativi delle macchine IBM come "Petitboot").
Bootloader mobile
Anche il sistema operativo di uno mwpgsmartphone, mwpwtablet o mwqapalmare contiene un boot loader. Nel campo dei mwqqdispositivi mobili i bootloader dei sistemi operativi originali sono spesso modificati dagli mwqgOEM cioè i produttori del dispositivo, come succede per gli smartphone che montano mwqwAndroid. Questo, invece, non accade per i dispositivi mwraApple essendo realizzati dalla stessa azienda che sviluppa il sistema operativo (mwrqIOS).
Note
cite-note-11. ↑ Anche mwvgbootloader. Lett. "caricatore di avvio".
cite-note-22. ↑ mwwg(mwwwmwxaEN) mwxqmwxgWhat is a Bootloader? How Does It Work In Embedded System? | Glossary, su mwxwconclusive.tech. mwyaURL consultato il 1º febbraio 2025.
cite-note-33. ↑ A parte Windows Boot Manager in quanto le edizioni Windows recenti si utilizzano anche per dispositivi mobili.
cite-note-55. ↑ mw0wmw1amw1qGuida al Bootloader: cos'è e a cosa serve - AndroidPIT, su mw1gandroidpit.it.
Voci correlate
Altri progetti
Altri progetti
• Wikimedia Commons
• Wikimedia Commons contiene immagini o altri file su boot loader